// client.js
const http2 = require('http2');
const fs = require('fs');

// 加载SSL证书
const clientOptions = {
    rejectUnauthorized: false,
};

// 连接到HTTP/2服务器
const client = http2.connect('https://localhost:8443', clientOptions);

client.on('error', (err) => console.error(err));

// 创建一个保持长连接的流
const stream = client.request({ ':path': '/' });

// 监听服务器发送的数据
stream.on('data', (chunk) => {
    console.log('Received data from server:', chunk.toString());
});

// 监听流关闭事件
stream.on('end', () => {
    console.log('Stream ended');
});

// 监听错误事件
stream.on('error', (err) => {
    console.error('Stream error:', err);
    stream.end();
});

// 发送数据报文
function sendMessage(message) {
    stream.write(message);
    stream.end();
}

// // 模拟客户端定时发送数据
// setInterval(() => {
//     console.log('Sending message to server');
//     const message = 'Client message at ' + new Date().toISOString();
//     sendMessage(message);
// }, 5000); // 每15秒发送一次消息

// 保持客户端运行
process.on('SIGINT', () => {
    stream.close();
    client.close();
    process.exit();
});
